home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / dev / c / qtools0.2-src.lha / src / util / minimalistic / visLIGHT.c < prev   
Encoding:
C/C++ Source or Header  |  1998-06-19  |  1.9 KB  |  80 lines

  1. #include "qtools.h"
  2.  
  3. struct memory bspStatic;
  4. struct memory *bspMem = &bspStatic;
  5.  
  6. /*
  7.  * ===========
  8.  * main
  9.  * ===========
  10.  */
  11. int main(int argc, char **argv)
  12. {
  13.   char portalfile[NAMELEN_PATH];
  14.   char source[NAMELEN_PATH];
  15.   int i;
  16.   int level = 2;
  17.   FILE *bspFile;
  18.  
  19.   memset(bspMem, 0, sizeof(struct memory));
  20.   if (!setjmp(eabort)) {
  21.     mprintf("----- Vis ---------------\n");
  22.  
  23.     for (i = 1; i < argc; i++) {
  24.       if (!strcmp(argv[i], "-fast")) {
  25.         mprintf("fastvis = true\n");
  26.         bspMem->visOptions |= VIS_FAST;
  27.       }
  28.       else if (!strcmp(argv[i], "-level")) {
  29.         testvislevel = atoi(argv[i + 1]);
  30.         mprintf("testvislevel = %i\n", testvislevel);
  31.         i++;
  32.       }
  33.       else if (!strcmp(argv[i], "-v")) {
  34.         mprintf("verbose = true\n");
  35.         bspMem->visOptions |= VIS_VERBOSE;
  36.       }
  37.       else if (argv[i][0] == '-')
  38.         Error("Unknown option \"%s\"", argv[i]);
  39.       else
  40.         break;
  41.     }
  42.  
  43.     if (i != argc - 1)
  44.       Error("usage: vis [-level 0-4] [-fast] [-v] bspfile");
  45.  
  46.     strcpy(source, argv[i]);
  47.     ReplaceExt(source, "bsp");
  48.     if((bspFile = fopen(source, READWRITE_BINARY_OLD))) {
  49.       if((bspMem = LoadBSP(bspFile, ALL_QUAKE1_LUMPS & (~LUMP_VISIBILITY), BSP_VERSION_Q1))) {
  50.         char *prtBuf;
  51.     
  52.         strcpy(portalfile, argv[i]);
  53.         ReplaceExt(portalfile, "prt");
  54.         
  55.         if((prtBuf = (char *)GetVoid(portalfile))) {
  56.           if(vis(bspMem, level, prtBuf) == FALSE)
  57.             eprintf("failed to calculate vis-lump\n");
  58.           else
  59.             WriteBSP(bspFile, bspMem);
  60.         
  61.           tfree(prtBuf);
  62.         }
  63.         else
  64.           eprintf("failed to load portalfile %s\n", portalfile);
  65.         
  66.         PrintClusters(bspMem, LUMP_VISIBILITY, TRUE);
  67.         FreeClusters(bspMem, 0);
  68.       }
  69.       else
  70.         eprintf("failed to load bspfile %s\n", source);
  71.       
  72.       fclose(bspFile);
  73.     }
  74.     else
  75.       eprintf("failed to open bspfile %s\n", source);
  76.   }
  77.  
  78.   return 0;
  79. }
  80.